@局外人
2年前 提问
1个回答
水平越权漏洞产生原因有哪些
在下炳尚
2年前
水平越权漏洞产生原因有以下这些:
通过隐藏URL:实现控制访问有些程序的管理员的管理页面只有管理员才显示,普通用户看不到,利用URL实现访问控制,但URL泄露或被恶意攻击者猜到后,这会导致越权攻击。
直接对象引用:这种通过修改一下参数就可以产生水平越权,例如查看用户信息页面URL后加上自己的id便可查看,当修改为他人的ID号时会返回他人的信息,便产生了水平越权。
多阶段功能:多阶段功能是一个功能有多个阶段的实现。例如修改密码,可能第一步是验证用户身份信息,号码验证码类的。当验证成功后,跳到第二步,输入新密码,很多程序会在这一步不再验证用户身份,导致恶意攻击者抓包直接修改参数值,导致可修改任意用户密码。
静态文件:很多网站的下载功能,一些被下载的静态文件,例如pdf、word、xls等,可能只有付费用户或会员可下载,但当这些文件的URL地址泄露后,导致任何人可下载,如果知道URL命名规则,则会便利服务器的收费文档进行批量下载。
平台配置错误:一些程序会通过控件来限制用户的访问,例如后台地址,普通用户不属于管理员组,则不能访问。但当配置平台或配置控件错误时,就会出现越权访问。
防范措施如下:
前后端同时对用户输入信息进行校验,双重验证机制;
调用功能前验证用户是否有权限调用相关功能;
执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限;
直接对象引用的加密资源ID,防止攻击者枚举ID,敏感数据特殊化处理;
永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤。